package com.wejoy.video.middle.station.data.service.evs;

import cn.hutool.http.HttpResponse;
import com.alibaba.fastjson2.JSONArray;
import com.alibaba.fastjson2.JSONObject;
import com.wejoy.video.middle.station.data.domain.system.SysDept;
import com.wejoy.video.middle.station.data.domain.system.SysUser;
import com.wejoy.video.middle.station.data.vo.api.BusinessPointConfigVO;
import com.wejoy.video.middle.station.data.vo.evsapi.EvsApiDeptVO;
import com.wejoy.video.middle.station.data.vo.evsapi.EvsApiLoginVO;

import java.util.List;

public interface IEvsHttpService {
    List<SysDept> getDepartments(SysDept evsApiDept, String token);


    JSONArray getDepartmentsJson(SysDept sysDept, String token);

    JSONObject getUsers(Integer departmentId, Integer pageNo, Integer PageSize, String name, String tel, String token);

    JSONObject getUserById(Long id, String token);

    HttpResponse evsLogin(EvsApiLoginVO loginVO);

    JSONObject getCurrentUserInfo(String token);

    JSONObject getPoints(String token, Integer pageSize, Integer pageNo, Integer departmentId, String pointName, Boolean includeLowerArea);
    JSONObject getPointsById(String token, Integer pointId);

    JSONObject pointsSignedUrl(String token, Integer pointId, String protocol);

    //getPointTagInfo
    JSONObject getPointTagInfo(String token, Long tagId, Integer pageNo, Integer pageSize);


    JSONObject getTags(String token, Long parentId, String tagCategoryId);

    JSONObject getPointTagInfoByPointId(String token, Long parentId, Long pointId, Integer pageNo, Integer pageSize);

    JSONObject getPointInfo(String token, Long pointId);

    JSONObject getPointConfig(String sceneType, String abilityType, Integer pointId, String token);

    JSONObject getCloudRecordList(String token,Integer pointId,Integer pageSize,Integer pageNo,String startTime,String endTime);
    JSONObject getLocalRecordList(String token,Integer pointId,String startTime,String endTime);

    JSONObject businessHallPointConfig(String sceneType, String abilityType, BusinessPointConfigVO businessPointConfigVO, String token);

    JSONObject fi(String token, Integer pointId, String fiCommand, Integer speed);

    JSONObject putPtz(String token, Integer pointId, String ptzCommand, Integer speed);

    String getToken();
}
